// 引入path
const { WSASERVICE_NOT_FOUND } = require('constants');
const path = require('path');
// 引入webSocket 
const webSocket = require("ws");
// 引入uitls工具
const fileUtils = require('../utils/files_utils')

// 创建出webSocket实例
const wws = new webSocket.Server({
    port: 9998
})
// 导出事件
module.exports.listen = () => {
    // 监听连接事件
    wws.on("connection", client => {
        console.log("有客户端连接了");
        client.on("message", async msg => {
            let payload = JSON.parse(msg) // msg 由客户端返回的数据 （转换为json）
            if (payload.action === 'getData') {
                // 返回每个模块的数据
                let filePath = '../data/' + payload.chartName + '.json'; // ../data/serller.json
                console.log(filePath);
                // 使用绝对路径
                filePath = path.join(__dirname, filePath);
                // 获取对应的Json文件
                const ret = await fileUtils.getFileJsonData(filePath);
                // 将获取到的json数据添加到获取到的数据中 以data字段保存
                payload.data = ret; 
                // 将数据发送给客户端
                client.send(JSON.stringify(payload));
            } else {
                // 原封不动的将所接收到的数据发送给每一个处于连接状态的客户端
                // 遍历所有的客户端
                wws.clients.forEach(client => {
                    // 转发
                    client.send(msg);
                })
            }
        })
    })
}